package br.com.monitorimoveis.comum.servico.impl;

import java.util.Date;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import br.com.monitorimoveis.comum.entidade.Anuncio;
import br.com.monitorimoveis.comum.persistencia.IAnuncioDAO;
import br.com.monitorimoveis.comum.servico.IAnuncioService;

@Service
public class AnuncioService implements IAnuncioService {

	@Autowired
	private IAnuncioDAO dao;
	
	@Transactional
	public void inserir(Anuncio anuncio) {
		anuncio.setDataInclusao(new Date());
		dao.inserir(anuncio);
	}
	
	@Transactional
	public void atualizar(int id, Anuncio atualizado) {
		Anuncio anuncio = dao.getById(id);
		anuncio.atualizarCom(atualizado);
		anuncio.setDataAlteracao(new Date());
		dao.atualizar(anuncio);
	}

	@Transactional
	public Anuncio getById(int idAnuncio) {
		return dao.getById(idAnuncio);
	}

	@Transactional
	public Anuncio getByCodigo(int codigo) {
		return dao.getByCodigo(codigo);
	}

	@Transactional
	public List<Anuncio> listAll() {
		return dao.listAll();
	}

	@Transactional
	public List<Anuncio> listByCidade(String cidade) {
		return dao.listByCidade(cidade);
	}

	@Transactional
	public List<Anuncio> listByBairroCidade(String cidade, String bairro) {
		return dao.listByBairroCidade(cidade, bairro);
	}

	public void deletarAnunciosDuplicados() {
		dao.deletarAnunciosDuplicados();
	}
	
	public void deletarHistoricosDuplicados() {
		dao.deletarHistoricosDuplicados();
	}

}
